/*
 * Annotation.java
 *
 * Created on 21 marzo 2004, 20.14
 */

package net.ermannofranco.xml.schema;

/**
 * La classe formalizza il tag Annotation, che puo' essere usato praticamente
 * ovunque.
 * 
 * @author ermanno (ermanno.franco@gmail.com)
 */
public class Annotation extends SchemaTag {

	private static final long serialVersionUID = 1236962317201129477L;

	/**
	 * Creates a new instance of Annotation
	 * 
	 * @param level
	 *            contatore di livello per indentazione, gestito automaticamente
	 * @param container
	 *            tag contenitore, automatico
	 */
	protected Annotation(int level, ISchemaTag container) {
		super("annotation", level, container);
	}

	/**
	 * aggiunge un tag Annotation che contiene un tag Documentation
	 * 
	 * @param explanation
	 * @return
	 */
	public Documentation addDocumentation(String explanation) {
		return addDocumentation().addText(explanation);
	}

	public Documentation addDocumentation() {
		Documentation doc;
		add(doc = new Documentation(getLevel() + 1, this));
		return doc;
	}

	/**
	 * aggiunge un tag Annotation che contiene un tag Documentation
	 * 
	 * @param explanation
	 *            testo della documentazione
	 * @param language
	 *            attributo di xml:lang, seguire le regole di i18n
	 * @return riferimento all'oggetto corrente
	 */
	public Documentation addDocumentation(String explanation, String language) {
		return addDocumentation().addText(explanation).setLanguage(language);
	}
}
